package net.comfycastle.musicplayer;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;

/**
 * 노래 재생을 컨트롤하기 위한 UI 프래그먼트
 * @author ricale
 *
 */
public class PlayControllerFragment extends BaseGeneralFragment {
	///////////
	//////////
	/////////   variable
	
	/** 재생 버튼 */
	private Button mBtnPlay;
	/** 일시 정지 (혹은 정지) 버튼 */
	private Button mBtnPause;
	/** 이전 곡 버튼 */
	private Button mBtnPrev;
	/** 다음 곡 버튼 */
	private Button mBtnNext;
	/** 목록 버튼 */
	private Button mBtnList;
	
	///////////
	//////////
	/////////   lifecycle callback method
	
	/**
	 * 프래그먼트가 생성될 때의 콜백 메서드
	 */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
	} // end onCreate
	
	@Override
	public void onResume() {
		super.onResume();
	} // end onResume
	
	/**
	 * 프래그먼트가 액티비티에 붙을 때의 콜백 메서드
	 */
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
		View view = inflater.inflate(R.layout.playcontroller, container, false);
		mBtnPlay = (Button)view.findViewById(R.id.playcontroller_btplay);
		mBtnPause = (Button)view.findViewById(R.id.playcontroller_btpause);
		mBtnPrev = (Button)view.findViewById(R.id.playcontroller_btprev);
		mBtnNext = (Button)view.findViewById(R.id.playcontroller_btnext);
		mBtnList = (Button)view.findViewById(R.id.playcontroller_btlist);
		
		mBtnPlay.setOnClickListener(mClickListener);
		mBtnPause.setOnClickListener(mClickListener);
		mBtnPrev.setOnClickListener(mClickListener);
		mBtnNext.setOnClickListener(mClickListener);
		mBtnList.setOnClickListener(mClickListener);
		return view;
	} // end onCreateView
	
	///////////
	//////////
	/////////   event listener & callback method
	
	/**
	 * 버튼이 클릭되었을 때의 이벤트 리스너
	 */
	private final View.OnClickListener mClickListener = new View.OnClickListener() {
		/**
		 * 버튼이 클릭되었을 때의 콜백 메서드
		 */
		@Override
		public void onClick(View v) {
			switch(v.getId()) {
			case R.id.playcontroller_btplay:
				if(MusicUtility.isPlaying()) {
					MusicUtility.pause();
				} else {
					MusicUtility.play();
				} // end if
				break;
			case R.id.playcontroller_btpause:
				MusicUtility.stop();
				break;
			case R.id.playcontroller_btprev:
				MusicUtility.prev();
				break;
			case R.id.playcontroller_btnext:
				MusicUtility.next();
				break;
			case R.id.playcontroller_btlist:
				((OnButtonClickListener)getActivity()).onButtonClick(EVENT.LIST_BUTTON_CLICK, v);
				break;
			} // end switch
		} // end onClick
	}; // end mClickListener
} // end PlayControllerFragment